This document details the data and files needed to replicate "Spontaneous Collective Action: Peripheral Mobilization During the Arab Spring."


########################################################
########################################################
#
# 	1. DATA
#
########################################################
########################################################
1. Data/Misc/sourceType.csv
	- These are the mappings of ID to occupation type as determined by Lotan et al. (2011) - The Revolutions Were Tweeted.

2. Country/YYYY-MM-DD.dat
	- The tweets were provided to me as one file per country-day, with one folder per country.
	- NB: I cannot provide these tweets.

3. Data/
	A. GDELT_Raw/YYYYMM.csv
		- GDELT data from 2010.11 through the end of 2011.
		- Used in Scripts/Steinert-Threlkeld_Replication_SubsetGDELT.py
	B. GDELT_Processed/
		1. <Country>_GDELT_Events.csv
		2. <Country>_GDELT_MassViolence.csv
		3. <Country>_GDELT_PublicStatements.csv
		4. <Country>_GDELT_Repression.csv
		5. <Country>_GDELT_Protests.csv
		6. <Country>_GDELT_CoordinationRequired_Protest.csv
	C. ICEWS/
		1. events.2010.20150313084533.tab
			- ICEWS 2010 Data
		2. events.2011.20150313084656.tab
			- ICEWS 2011 Data
	D. Twitter/
		1. OnlyTweetsFrom_<country>NewData.csv
			- NB: I cannot share these raw data.
		2. DisaggregatedTweetsFrom_<country>_NewData_PopularityMeasures.csv
			- NB: I cannot share these raw data.
		3. <country>_AggregatedTweets_NewData_PopularityMeasures.csv
			- I can share these data.
		4. AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
			- This dataset is the main one to use
		5. PlaceboAnalysis_GiniWithTop<#>HashtagsPerDayRemoved.csv
			- # = 5, 10, or 20
			- Each dataset has the country-day as its unit of analysis.
			_ I can share these data.
		6. DisaggregatedTweetsFrom_Egypt_NewData_PopularityMeasures_BlackoutPeriod.csv
			- Only tweets from during the blackout (end of January and into February of 2011)
			- Too many tweets to share
		7. Egypt_InfluentialUsers_AggregatedTweets_NewData_PopularityMeasures.csv
			- Country-day data for just the users who tweeted during the blackout
		8. Egypt_InfluentialUsers_InformationMeasures_AllDates_TwitterOnly_NewData_PopularityMeasures.csv
			- This dataset is the same as above but with any missing days added.  There are no equivalents for other countries because Steinert-Threlkeld_Replication_TwitterMeasures.py returns this object from the function in which it is created, it does not save it.
		9. Egypt_InfluentialUsers_AllDates_AllDVs_TwitterAndGDELT.csv
			- The main dataset to use for the Egypt robustness checks.
			- This dataset can be shared.
		10. Tweets_Dataframe_AllBahrain_f1Based.csv
		11. Tweets_Dataframe_AllEgypt_f1Based.csv
		12. Tweets_Dataframe_AllBahrain_f1Based_MoreColumns.csv
		13. Tweets_Dataframe_AllEgypt_f1Based_MoreColumns.csv
	E. ACLED/
		1. ACLED_<country>_20102011.csv
			- These were created by hand by subsetting ACLED using Excel.
		2. ACLED-Version-5-All-Africa-1997-2014_dyadic_Updated.csv
			- Raw data
	F. NLP/
		1. Bahrain_1500TweetsToCode_Arabic.csv
		2. Bahrain_1500TweetsToCode_English.csv
		3. Bahrain_TweetsCoded_Combined.csv
		4. EgyptTweetsToCode_Massara.csv
		5. EgyptTweetsToCode_MariamG.csv
		6. EgyptTweetsToCode_Rhoda.csv
		7. EgyptTweetsToCode_English_Michael.csv
		8. Egypt_TweetsCoded_Combined.csv
		9. Tweets_Dataframe_FromSifter_WithProcessedText.csv
		10. OnlyTweetsFrom_EgyptNewData_CleanedData.csv
		11. OnlyTweetsFrom_BahrainNewData_CleanedData.csv
		12. Tweets_Dataframe_PredictionsFor_sifter_VocabFrom_Bahrain.csv
		13. Tweets_Dataframe_PredictionsFor_sifter_VocabFrom_Egypt.csv
		14. Top3Models_Parameters_UseForPredictions.csv

########################################################
########################################################
#
# 	2. SCRIPTS
#
########################################################
########################################################
1. Scripts/Steinert-Threlkeld_Replication_TwitterMeasures.py
	- This is the main script which processes the raw tweet tab-deliminted file, adds metadata, and outputs a .csv
	- Input:
		1. Data/Misc/sourceType.csv
		2. Country/YYYY-MM-DD.dat
	- Output:
		1. Data/Twitter/OnlyTweetsFrom_<country>NewData.csv
			- NB: I cannot share these raw data.
		2. Data/Twitter/DisaggregatedTweetsFrom_<country>_NewData_PopularityMeasures.csv
			- NB: I cannot share these raw data.
		3. Data/Twitter/<country>_AggregatedTweets_NewData_PopularityMeasures.csv
			- NB: These data are shared.

2. Scripts/Steinert-Threlkeld_Replication_SubsetGDELT.py
	- This is the script which processes the raw GDELT data for certain events from the countries and days of interest.
	- Input:
		1. Data/GDELT_Raw/YYYYMM.csv
			- 201011.csv through 201112.csv
	- Output:
		1. Data/GDELT_Processed/<Country>_GDELT_Events.csv
		2. Data/GDELT_Processed/<Country>_GDELT_MassViolence.csv
		3. Data/GDELT_Processed/<Country>_GDELT_PublicStatements.csv
		4. Data/GDELT_Processed/<Country>_GDELT_Repression.csv
		5. Data/GDELT_Processed/<Country>_GDELT_Protests.csv
		6. Data/GDELT_Processed/<Country>_GDELT_CoordinationRequired_Protest.csv
		7. Data/Twitter/<country>_InformationMeasures_AllDates_TwitterOnly_NewData_PopularityMeasures.csv
		8. Data/GDELT_Processed/<country>_GDELT_Aggregated_AllDates_'<GDELT event>.csv
		9. Data/Twitter/<country>_AllDates_AllDVs_TwitterAndGDELT.csv

3. Scripts/Steinert-Threlkeld_Replication_SubsetICEWS.py
	- This is the script which processes ICEWS data and saves repression, protest, and public statement events.
	- It does not save the exact same events as GDELT because it was created at a later point in the project.  By that point, I realized I only needed these 3 events.
	- Input:
		1. Data/ICEWS/events.2010.20150313084533.tab
		2. Data/ICEWS/events.2011.20150313084656.tab
	- Output:
		1. Data/ICEWS/2010_2011_AllProtestsAndRepressionEvents.csv
		2. Data/ICEWS/ICEWS_Nov2010Dec2011_EventCount.csv
		3. Data/ICEWS/ICEWS_All_Protests_Repression<country>_Aggregated.csv

4. Scripts/Steinert-Threlkeld_Replication_CombineICEWS_GDELT.R
	- This script combines ICEWS data with the aggregated Twitter, GDELT data.
	- This script also lags key variables by country.
	- Input:
		1. Data/ICEWS/ICEWS_All_Protests_Repression<country>_Aggregated.csv
		2. Data/Twitter/<country>_AllDates_AllDVs_TwitterAndGDELT.csv
	- Output:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv

5. Scripts/Steinert-Threlkeld_Replication_Figure1.R
	- This script creates Figure 1 using the ICEWS data.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Figure_1a_Egypt_ProtestperMillion_Overtime_AllDates_Jan2016_ICEWS.pdf
		2. Figures/Steinert-Threlkeld_Figure_1b_Bahrain_ProtestperMillion_Overtime_AllDates_Jan2016_ICEWS.pdf
		3. Figures/Steinert-Threlkeld_Figure_1c_Morocco_ProtestperMillion_Overtime_AllDates_Jan2016_ICEWS.pdf
		4. Figures/Steinert-Threlkeld_Figure_1d_Qatar_ProtestperMillion_Overtime_AllDates_Jan2016_ICEWS.pdf

6. Scripts/Steinert-Threlkeld_Replication_CreateLotanComparisonData.py
	- This script creates the raw data that I use to compare Lotan's hand accounts to my accounts.  That data is then used for Table 1.
	- Input:
		1. Data/Twitter/DisaggregatedTweetsFrom_Egypt_NewData_PopularityMeasures.csv
		2. Data/Twitter/DisaggregatedTweetsFrom_Tunisia_NewData_PopularityMeasures.csv
	- Output:
		1. Data/Misc/Mobilization_DataframeOfLotanMyEliteMeasures_Egypt.csv
		2. Data/Misc/Mobilization_DataframeOfLotanMyEliteMeasures_Tunisia.csv
		3. Data/Misc/Mobilization_DataframeOfLotanMyEliteMeasures_EgyptTunisia.csv

7. Scripts/Steinert-Threlkeld_Replication_Table1.R
	- The purpose of this script is to recreate Table 1 comparing Lotan et al.'s handcoding of accounts to my measure of accounts' popularity.
	- Input:
		1. Data/Misc/Mobilization_DataframeOfLotanMyEliteMeasures_EgyptTunisia.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Table1_Lotan_Comparison.tex

8. Scripts/Steinert-Threlkeld_Replication_Table2_Table3.R
	- The purpose of this script is to recreate Tables 2 and 3 (descriptive statistic tables).
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Table2_Table_Correlation_RegressionVariables_ICEWS.tex
		2. Figures/Steinert-Threlkeld_Table3_Table_Correlation_CountryDescriptives_ICEWS.tex

9. Scripts/Steinert-Threlkeld_Replication_Figure2.R
	- The purpose of this script is to replicate the marginal effects plots, Figures 2a and 2b, of the paper's main model.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Figure2a_HashtagGini_MarginalEffect_WithStateRepression_Aug2015_ICEWS.pdf
		2. Figures/Steinert-Threlkeld_Figure2b_PercHashtag_FromPopular5Percent_MarginalEffect_WithStateRepression_Aug2015_ICEWS.pdf

10. Scripts/Steinert-Threlkeld_Replication_Table4.R
	- The purpose of this script is to make the Latex table presenting the first models\' results.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Table4_Coordination_WithStateRepression_Aug2015_ICEWS.tex

11. Scripts/Steinert-Threlkeld_Replication_Table5.R
	- The purpose of this script is to replicate Table 5 from the main paper, the first set of robustness checks.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Table5_Robustness3_EliteMeasurement__WithStateRepression_Aug2015_ICEWS.tex

12. Scripts/Steinert-Threlkeld_Replication_Figure4.R
	- The purpose of this script is to reproduce Figure 4 from the main paper, the figure that shows the sensitivity of the finding to the threshold of followers.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Figure4a_ChangeInCoefficientAsMainEliteVariableChanges_WithStateRepression_Top1Percentile_Aug2015_ICEWS.pdf
		2. Figures/Steinert-Threlkeld_Figure4b_ChangeInCoefficientAsMainEliteVariableChanges_WithStateRepression_99to80Percentile_Aug2015_ICEWS.pdf

13. Scripts/Steinert-Threlkeld_Replication_Table6.R
	- The purpose of this script is to recreate Table 6, which shows the distribution of key variables across the 99.7% follower threshold for each country.
	- Input:
		1. Data/Twitter/Mobilization_DataframeOfLotanMyEliteMeasures_AllCountries.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Table6_Lotan_Comparison_AllCountries.tex

14. Scripts/Steinert-Threlkeld_Replication_ExtractSuperElites.py
	- The purpose of this script is to extract the users who are above normal or in the 99.7% percentile or above for the follower distribution.  Some of these groups positively correlate with subsequent protest.  It will also keep Lotan categories.
	- Input:
		1. Data/Twitter/DisaggregatedTweetsFrom_<country>_NewData_PopularityMeasures.csv
		2. Data/Twitter/EliteTweets_<country>_ICEWS_Checking_Top95Percent.csv
	- Output:
		1. Data/Twitter/EliteTweets_<country>_ICEWS_Checking_Top95Percent.csv
		2. Data/Twitter/Mobilization_DataframeOfLotanMyEliteMeasures_AllCountries.csv
15. Scripts/Steinert-Threlkeld_Replication_Table7.R
	- The purpose of this script is to replicate the robustness checks performed in Table 7.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Table7_Robustness1_CoordinationAndElitesModel__WithStateRepression_Aug2015_ICEWS.tex

16. Scripts/Steinert-Threlkeld_Replication_SubsetACLED.py
	- The purpose of this script is to select protests, repression from ACLED and match with other metadata.
	- Input:
		1. Data/ACLED/ACLED_<country>_20102011.csv
	- Output:
		1. Data/Twitter/<country>_AllDates_AllDVs_TwitterAndACLED_NewData_PopularityMeasures.csv

17. Scripts/Steinert-Threlkeld_Replication_Figure5.R
	- The purpose of this script is to recreate Figure 5, the figure showing correlation between ICEWS and ACLED.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
		2. Data/Twitter/<country>_AllDates_AllDVs_TwitterAndACLED_NewData_PopularityMeasures.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Figure5_ACLEDBinned_ICEWSLogged_Correlation_se.pdf

18. Scripts/Steinert-Threlkeld_Replication_RemoveTopHashtagsPerCountry.py
	- The purpose of this script is to identify the most common hashtags for each country and rerun all my analyzes excluding those tweets.  This exercise is in response to a review who wants to know if coordination occurs in the long-tail of hashtags.
	- Input:
		1. Data/Twitter/OnlyTweetsFrom_<country>NewData.csv
	- Output:
		1. Data/Twitter/PlaceboAnalysis_GiniWithTop5HashtagsPerDayRemoved.csv
		2. Data/Twitter/PlaceboAnalysis_GiniWithTop10HashtagsPerDayRemoved.csv
		3. Data/Twitter/PlaceboAnalysis_GiniWithTop20HashtagsPerDayRemoved.csv

19. Scripts/Steinert-Threlkeld_Replication_Table8.R
	- The purpose of this script is to make the Latex table presenting Table 8\'s results, the results when you exclude the top 5, 10, and 15 hashtags per day.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
		2. Data/Twitter/PlaceboAnalysis_GiniWithTop5HashtagsPerDayRemoved.csv
		3. Data/Twitter/PlaceboAnalysis_GiniWithTop10HashtagsPerDayRemoved.csv
		4. Data/Twitter/PlaceboAnalysis_GiniWithTop20HashtagsPerDayRemoved.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Table8_Placebo_Coordination_ClusterSE_Jan2016_ICEWS.tex


20. Scripts/Steinert-Threlkeld_Replication_Figure6.R
	- The purpose of this script is to make Figure 6, the placebo test of different lags.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Figure6_PlaceboTest_Plain.pdf

21. Scripts/Steinert-Threlkeld_Replication_IdentifyInfluentials_Egypt.py
	- The purpose of this script is to identify users in Egypt who tweeted during communications blackout.  These individuals therefore either had friends abroad, knew how to use the one remaining ISP, or knew journalists who lent their phones.
	- Input:
		1. Data/Twitter/DisaggregatedTweetsFrom_Egypt_NewData_PopularityMeasures.csv
	- Output:
		1. Data/Twitter/DisaggregatedTweetsFrom_Egypt_NewData_NewPopularityMeasures_BlackoutPeriod.csv
		2. Data/Twitter/Egypt_InfluentialUsers.txt

22. Scripts/Steinert-Threlkeld_Replication_TwitterMeasures_EgyptBlackout.py
	- The purpose of this script is to identify Twitter users from Egypt during that country's blackout and use them to create a new Egypt dataset.
	- Input:
		1. Data/Misc/sourceType.csv
		2. Data/Twitter/Egypt_InfluentialUsers.txt
		3. Data/Twitter/DisaggregatedTweetsFrom_Egypt_NewData_PopularityMeasures.csv
	- Output:
		1. Data/Twitter/Egypt_InfluentialUsers_AggregatedTweets_NewData_PopularityMeasures
		2. Data/Twitter/Egypt_InfluentialUsers_InformationMeasures_AllDates_TwitterOnly_NewData_PopularityMeasures
		3. Data/Twitter/Egypt_InfluentialUsers_AllDates_AllDVs_TwitterAndGDELT

23. Scripts/Steinert-Threlkeld_Replication_Figure7_Table9.R
	- The purpose of this script is to analyze and present the data created in Scripts/Steinert-Threlkeld_Replication_TwitterMeasures_EgyptBlackout.py.  It creates the two plots for Figure 7 and the models for Table 9.
	- Input:
		1. Data/Twitter/Egypt_InfluentialUsers_AllDates_AllDVs_TwitterAndGDELT.csv
		2. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Figure7a_Egypt_CoordinationBlackountInfluentials_Coordination_ProtestSize_Aug2015_ICEWS.pdf
		2. Figures/Steinert-Threlkeld_Figure7b_Egypt_CoordinationBlackountInfluentials_CoordinationInfluentialsCorrelation_ProtestSize_Aug2015_ICEWS.pdf
		3. Figures/Steinert-Threlkeld_Table9_Egypt_BlackoutInfluentials_RepeatTable1_Aug2015_ICEWS.tex

24. Scripts/Steinert-Threlkeld_Replication_TopicModel_01_Bahrain_CombineHandcoding.py
	- The purpose of this script is to combine the training set for Bahrain.
	- Input:
		1. Data/NLP/Bahrain_1500TweetsToCode_Arabic.csv
		2. Data/NLP/Bahrain_1500TweetsToCode_English.csv
	- Output:
		1. Data/NLP/Bahrain_TweetsCoded_Combined.csv

25. Scripts/Steinert-Threlkeld_Replication_TopicModel_02_Egypt_CombineHandcoding.py
	- The purpose of this script is to combine the hand coding of tweets from Egypt performed by 4 UCSD undergraduates.
	- Input:
		1. Data/NLP/EgyptTweetsToCode_Massara.csv
		2. Data/NLP/EgyptTweetsToCode_MariamG.csv
		3. Data/NLP/EgyptTweetsToCode_Rhoda.csv
		4. Data/NLP/EgyptTweetsToCode_English_Michael.csv
	- Output:
		1. Data/NLP/Egypt_TweetsCoded_Combined.csv

26. Scripts/Steinert-Threlkeld_Replication_TopicModel_03_CleanSifterTweets.py
	- The purpose of this script is to prepare the Sifter tweets for model creation.  This process involves cleaning and stemming them.
	- Input:
		1. Data/Twitter/Tweets_Dataframe_FromSifter.csv
	- Output:
		1. Data/NLP/Tweets_Dataframe_FromSifter_WithProcessedText.csv
			- NB: I cannot share these data.  See "Longitudinal Network Centrality with Incomplete Data", in Political Analysis, and "Twitter as Data" from Cambridge University Press for more information.


27. Scripts/Steinert-Threlkeld_Replication_TopicModel_04_CleanEgyptTweets.py
	- The purpose of this script is to prepare the raw Egypt tweets for model creation.  This process involves cleaning and stemming them.
	- Input:
		1. Data/Twitter/OnlyTweetsFrom_EgyptNewData.csv
	- Output:
		1. Data/NLP/OnlyTweetsFrom_EgyptNewData_CleanedData.csv
			- NB: I cannot share these data.


28. Scripts/Steinert-Threlkeld_Replication_TopicModel_05_CleanBahrainTweets.py
	- The purpose of this script is to prepare the raw Bahrain tweets for model creation.  This process involves cleaning and stemming them.
	- Input:
		1. Data/Twitter/OnlyTweetsFrom_BahrainNewData.csv
	- Output:
		1. Data/NLP/OnlyTweetsFrom_BahrainNewData_CleanedData.csv
			- NB: I cannot share these data.


29. Scripts/Steinert-Threlkeld_Replication_TopicModel_06_ModelSifterTweets.py
	- The purpose of this script is to use the training tweets to generate topic models and generate data to test those models.
	- Input:
		1. Data/NLP/Egypt_TweetsCoded_Combined.csv
		2. Data/NLP/Bahrain_TweetsCoded_Combined.csv
		3. Data/NLP/Tweets_Dataframe_FromSifter_WithProcessedText.csv
	- Output:
		1. /Data/NLP/Tweets_Dataframe_PredictionsFor_sifter_VocabFrom_Bahrain.csv
		2. /Data/NLP/Tweets_Dataframe_PredictionsFor_sifter_VocabFrom_Egypt.csv


30. Scripts/Steinert-Threlkeld_Replication_TopicModel_07_InvestigateModelFit.R
	- The purpose of this script is to investigate the models created in Scripts/Steinert-Threlkeld_Replication_TopicModel_ModelSifterTweets.py
	- Input:
		1. Data/NLP/Tweets_Dataframe_PredictionsFor_sifter_VocabFrom_Bahrain.csv
		2. Data/NLP/Tweets_Dataframe_PredictionsFor_sifter_VocabFrom_Egypt.csv
	- Output:
		1. Data/NLP/Top3Models_Parameters_UseForPredictions.csv

31. Scripts/Steinert-Threlkeld_Replication_TopicModel_08_GeneratePredictions.py
	- The purpose of this script is to assign topics for tweets from Bahrain and Egypt, based on the topic models generated in Steinert-Threlkeld_Replication_TopicModel_06_ModelSifterTweets.py
	- Input:
		1. Data/NLP/Egypt_TweetsCoded_Combined.csv
		2. Data/NLP/Bahrain_TweetsCoded_Combined.csv
		3. Data/NLP/Tweets_Dataframe_FromSifter_WithProcessedText.csv
		4. Data/NLP/OnlyTweetsFrom_EgyptNewData_CleanedText.csv
		5. Data/NLP/OnlyTweetsFrom_BahrainNewData_CleanedText.csv
		6. Data/NLP/Top3Models_Parameters_UseForPredictions.csv
	- Output:
		1. Data/Twitter/Tweets_Dataframe_AllBahrain_f1Based.csv
		2. Data/Twitter/Tweets_Dataframe_AllEgypt_f1Based.csv

32. Scripts/Steinert-Threlkeld_Replication_TopicModel_09_AnalyzeResults.py
	- The purpose of this script is to add columns for language-prediction combinations.
	- Input:
		1. Data/NLP/Top3Models_Parameters_UseForPredictions.csv
		2. Data/Twitter/Tweets_Dataframe_AllBahrain_f1Based.csv
		3. Data/Twitter/Tweets_Dataframe_AllEgypt_f1Based.csv
	- Output:
		1. Data/Twitter/Tweets_Dataframe_AllBahrain_f1Based_MoreColumns.csv
		2. Data/Twitter/Tweets_Dataframe_AllEgypt_f1Based_MoreColumns.csv

33. Scripts/Steinert-Threlkeld_Replication_TopicModel_10_AggregateByDay.py
	- The purpose of this script is to aggregate the results from the topic model to the country-day level, in preparation for merging with events data.
	- Input:
		1. Data/Twitter/Tweets_Dataframe_AllBahrain_f1Based_MoreColumns.csv
		2. Data/Twitter/Tweets_Dataframe_AllEgypt_f1Based_MoreColumns.csv
	- Output:
		1. Data/Twitter/BahrainEgypt_ParedAggregatedToCompareToHashtagGini.csv'

34. Scripts/Steinert-Threlkeld_Replication_Figure3.R
	- The purpose of this script is to replicate Figure 3, which verifies my measure of coordination.
	- Input:
		1. Data/Twitter/AllCountries_AllDates_AllDVs_TwitterAndGDELTAndICEWS.csv
		2. Data/Twitter/BahrainEgypt_ParedAggregatedToCompareToHashtagGini.csv
	- Output:
		1. Figures/Steinert-Threlkeld_Figure3_HashtagGini_ProtestCoordinationTweetsNormalized_Correlation_Aug2015.pdf



